package day05;

/**
 * @author wangzhisen
 * @Desc TODO
 * @date 2025/4/14
 *
 * 练习3：实现trim()方法的相同效果 (去除字符串两端的空白字符（包括空格、制表符、换行符等）)
 */
public class TestString03 {
    public static void main(String[] args) {

        String test1 = "   Hello World   ";
        String test2 = "\t\n  \tHello World\t  \n";
        String test3 = "Hello World";
        String test4 = "    ";
        String test5 = null;

        System.out.println("'" + Trim(test1) + "'"); // 'Hello World'
        System.out.println("'" + Trim(test2) + "'"); // 'Test String'
        System.out.println("'" + Trim(test3) + "'"); // 'NoTrimNeeded'
        System.out.println("'" + Trim(test4) + "'"); // ''
        System.out.println("'" + Trim(test5) + "'"); // 'null'
    }

    public static String Trim(String str) {
        if (str == null) {
            return null;
        }
        int len = str.length();
        int start = 0;
        int end = len - 1;
        // 找到第一个非空白字符的位置
        while (start <= end && str.charAt(start) <= ' ') {
            start++;
        }
        // 找到最后一个非空白字符的位置
        while (end >= start && str.charAt(end) <= ' ') {
            end--;
        }
        // 如果全部是空白字符，返回空字符串
        if (start > end) {
            return "";
        }
        return str.substring(start, end + 1);
    }
}
